/**
 * @file MessageWRQ.h
 * @author Karol Kulesza
 *  
 * Proponowana struktura klasy odpowiadającącej za obsługę żądania przesłania pliku
 * do serwera przez klienta. Przesyłanie danych od klienta do serwera nie jest częścią 
 * tego projektu i nie jest w nim realizowane.
 */

#ifndef MESSAGEWRQ_H_
#define MESSAGEWRQ_H_

#include "MessageExecutor.h"
#include "../ClientController.h"

namespace tftp_server
{

/**
 * @class MessageWRQ
 * Proponowana struktura klasy odpowiadającącej za obsługę żądania przesłania pliku
 * do serwera przez klienta. Przesyłanie danych od klienta do serwera nie jest częścią 
 * tego projektu i nie jest w nim realizowane.  
 */
class MessageWRQ: public tftp_server::MessageExecutor
{
	/**
	 * Clientcontroller obsługujący pobieranie pliku.
	 */
	ClientController *clientController;
	/**
	 * Otrzymany pakiet opakowujący żądanie pisania WRQ.
	 */
	Package package;
	
public:
	/**
	 * Konstruktor klasy.
	 * @param clientController_ - Clientcontroller obsługujący wysyłanie pliku. 
	 * @param package_ - otrzymany pakiet.
	 */
	MessageWRQ(ClientController *clientController_, Package package_);
;
	/**
	 * Destruktor klasy
	 */
	~MessageWRQ();

	/**
	 * Metoda obsługująca otrzymane żądanie pisania.
	 */
	void execute() const;
;
};

}

#endif /* MESSAGEWRQ_H_ */
